<?php
	/*
	* Title: Class View
	* Description: Lớp View cơ bản sẽ được các lớp View khác kế thừa
	* Author: NhanPro - BingoGroup
	* Date: 03/03/2013
	*/
	class View
	{
		protected $_file; // Thuộc tính đường dẫn tới view
		protected $_data = array(); // Thuộc tính chứa dữ liệu được truyền xuống view
		protected $_layout;
		protected $_output;
		
		/*
		* Hàm khởi tạo lớp view
		* Hàm thiết lập đường dẫn mặc định tới view
		*/
		
		public function __construct($file,$layout)
		{
			$this->_file = $file;
			$this->_layout = $layout;
		}
		
		/*
		* Hàm gán 1 trường dữ liệu xuống view
		*/
		public function set($key, $value)
		{
			$this->_data[$key] = $value;
		}
		
		/*
		* Hàm lấy 1 trường dữ liệu được đưa xuống view
		*/
		public function get($key)
		{
			return $this->_data[$key];
		}
		
		/*
		* Hàm xuất view ra trình duyệt
		*/
		public function output()
		{
			if (!file_exists($this->_file))
			{
				throw new Exception("View " . $this->_file . " doesn't exist.");
			}
			
			extract($this->_data);
			ob_start();
			include($this->_file);
			$output = ob_get_contents();
			ob_end_clean();
			$this->_output=$output;
			include_once(ROOT_DIRECTORY.'/layouts/'.$this->_layout.'.php');
		}
	}
?>